package com.rickpan.dto.response;

import java.util.List;

/**
 * 存储统计响应DTO
 */
public class StorageStatsResponse {
    
    private Integer totalFiles;
    private Integer totalFolders;
    private Long totalSize;
    private Long usedSpace;
    private Long availableSpace;
    private Long totalSpace;
    private List<FileTypeStats> fileTypeStats;
    
    // 构造函数
    public StorageStatsResponse() {}
    
    // Getter和Setter方法
    public Integer getTotalFiles() {
        return totalFiles;
    }
    
    public void setTotalFiles(Integer totalFiles) {
        this.totalFiles = totalFiles;
    }
    
    public Integer getTotalFolders() {
        return totalFolders;
    }
    
    public void setTotalFolders(Integer totalFolders) {
        this.totalFolders = totalFolders;
    }
    
    public Long getTotalSize() {
        return totalSize;
    }
    
    public void setTotalSize(Long totalSize) {
        this.totalSize = totalSize;
    }
    
    public Long getUsedSpace() {
        return usedSpace;
    }
    
    public void setUsedSpace(Long usedSpace) {
        this.usedSpace = usedSpace;
    }
    
    public Long getAvailableSpace() {
        return availableSpace;
    }
    
    public void setAvailableSpace(Long availableSpace) {
        this.availableSpace = availableSpace;
    }
    
    public Long getTotalSpace() {
        return totalSpace;
    }
    
    public void setTotalSpace(Long totalSpace) {
        this.totalSpace = totalSpace;
    }
    
    public List<FileTypeStats> getFileTypeStats() {
        return fileTypeStats;
    }
    
    public void setFileTypeStats(List<FileTypeStats> fileTypeStats) {
        this.fileTypeStats = fileTypeStats;
    }
    
    /**
     * 文件类型统计内部类
     */
    public static class FileTypeStats {
        private String type;
        private Integer count;
        private Long size;
        
        public FileTypeStats() {}
        
        public FileTypeStats(String type, Integer count, Long size) {
            this.type = type;
            this.count = count;
            this.size = size;
        }
        
        public String getType() {
            return type;
        }
        
        public void setType(String type) {
            this.type = type;
        }
        
        public Integer getCount() {
            return count;
        }
        
        public void setCount(Integer count) {
            this.count = count;
        }
        
        public Long getSize() {
            return size;
        }
        
        public void setSize(Long size) {
            this.size = size;
        }
        
        @Override
        public String toString() {
            return "FileTypeStats{" +
                    "type='" + type + '\'' +
                    ", count=" + count +
                    ", size=" + size +
                    '}';
        }
    }
    
    @Override
    public String toString() {
        return "StorageStatsResponse{" +
                "totalFiles=" + totalFiles +
                ", totalFolders=" + totalFolders +
                ", totalSize=" + totalSize +
                ", usedSpace=" + usedSpace +
                ", availableSpace=" + availableSpace +
                ", totalSpace=" + totalSpace +
                ", fileTypeStats=" + fileTypeStats +
                '}';
    }
}
